package edu.algo3.algoThief.domain;

import edu.algo3.algoThief.util.Constants;

public class Tiempo {

    static int tiempo;
    static int cantidadDeHorasDespierto = 0;
    
	public Tiempo(){
        tiempo = Constants.TIEMPO_INICIAL;
    }
	
	public Tiempo(int tiempoCargado){
		tiempo = tiempoCargado;
	}
    
    public static Integer getTiempo() {
    	
    	if ( tiempo < Constants.CERO_HORAS)
    	{
    		return Constants.CERO_HORAS;
    	}
    	
        return tiempo;
    }
    
    public static String getDiaYHora() {
        String dia;
        String hora;
        int tiempoTranscurrido = Constants.TIEMPO_INICIAL - tiempo;
        if (tiempoTranscurrido < Constants.HORAS_DIA_LUNES) {
            dia = Constants.DIA_LUNES;
            hora = (new Integer(tiempoTranscurrido + 7)).toString();
        } else if (tiempoTranscurrido > Constants.HORAS_HASTA_DOMINGO) {
            dia = Constants.DIA_DOMINGO;
            hora = (new Integer(tiempoTranscurrido - Constants.HORAS_HASTA_DOMINGO)).toString();
        } else {
            tiempoTranscurrido = tiempoTranscurrido - Constants.HORAS_DIA_LUNES;
            if (tiempoTranscurrido / 24 < 1){
                dia = Constants.DIA_MARTES;
                hora = (new Integer(tiempoTranscurrido % 24)).toString();
            } else if (tiempoTranscurrido / 24 < 2){
                dia = Constants.DIA_MIERCOLES;
                hora = (new Integer(tiempoTranscurrido % 24)).toString();
            } else if (tiempoTranscurrido / 24 < 3){
                dia = Constants.DIA_JUEVES;
                hora = (new Integer(tiempoTranscurrido % 24)).toString();
            } else if (tiempoTranscurrido / 24 < 4){
                dia = Constants.DIA_VIERNES;
                hora = (new Integer(tiempoTranscurrido % 24)).toString();
            } else {
                dia = Constants.DIA_SABADO;
                hora = (new Integer(tiempoTranscurrido % 24)).toString();
            }
        }
        return (dia + ", " + hora + Constants.HS);
    }

	public static void setTiempo(Integer nuevoTiempo) {
		
        tiempo = nuevoTiempo;
        
        // TODO : cuando hara una gestion de victoria : if(nuevoTiempo < 0 )...
    }
	
	public static boolean seAcaboElTiempo(){
	    if (tiempo <= Constants.CERO_HORAS){
	        return Boolean.TRUE;
	    }
	    return Boolean.FALSE;
	}

}
